package cn.csust.net2.manager.shared.service;

import java.util.List;

import cn.csust.net2.manager.shared.po.PO;

import com.extjs.gxt.ui.client.data.BaseListLoadConfig;
import com.extjs.gxt.ui.client.data.PagingLoadConfig;
import com.extjs.gxt.ui.client.data.PagingLoadResult;
import com.google.gwt.user.client.rpc.AsyncCallback;

public interface BaseServiceAsync {

	 void delete(PO t, AsyncCallback<Void> callback);

	 <T extends PO>	void findAll(String cla, PagingLoadConfig config,
			AsyncCallback<PagingLoadResult<T>> callback);

	 <T extends PO> void findAll(String cla,PagingLoadConfig config, String hql,
			AsyncCallback<PagingLoadResult<T>> callback);

	 void save(PO t, AsyncCallback<Void> callback);

	 void update(PO t, AsyncCallback<Void> callback);

	void delete(List<PO> list, AsyncCallback<Void> callback);

	void save(List<PO> list, AsyncCallback<Void> callback);

	void update(List<PO> list, AsyncCallback<Void> callback);

	<T extends PO> void findAll(String cla, AsyncCallback<List<T>> callback);

	<T extends PO> void findAll(String cla, BaseListLoadConfig config,
			AsyncCallback<List<T>> callback);

}
